home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Programmation / jedit / jedit5.1.0install.exe / {app} / macros / Clipboard / Cut_Lines_Containing.bsh < prev    next >
Text File  |  2013-07-28  |  1KB  |  42 lines

  1. /*
  2.  * Cut_Lines_Containing.bsh - Cuts lines from current buffer that
  3.  * contain a user-supplied string to the clipboard.
  4.  * 
  5.  * Copyright (C) 2004 Ollie Rutherfurd <oliver@jedit.org>
  6.  *
  7.  * $Id: Cut_Lines_Containing.bsh 21353 2012-03-14 09:46:51Z jojaba_67 $
  8.  */
  9.  
  10. // Localization
  11. final static String CutLinesContainingLabel = jEdit.getProperty("macro.rs.CutLinesContaining.CutLinesContaining.label", "Cut lines containing:");
  12. final static String LinesCutMessage = jEdit.getProperty("macro.rs.CutLinesContaining.LinesCut.message", "line(s) cut");
  13.  
  14. // Process 
  15. cutLinesContaining(){
  16.     String text = Macros.input(view, CutLinesContainingLabel);
  17.     if(text == null || "".equals(text))
  18.         return;
  19.     int count = 0;
  20.     int start = 0;
  21.     int end = 0;
  22.     StringBuffer buff = new StringBuffer();
  23.     for(int i = buffer.getLineCount() - 1 ; i >= 0; i--){
  24.         String line = buffer.getLineText(i);
  25.         if(line.indexOf(text) > -1){
  26.             buff.insert(0,'\n').insert(0,line);
  27.             int start = buffer.getLineStartOffset(i);
  28.             int end = buffer.getLineEndOffset(i);
  29.             buffer.remove(start,Math.min(end,buffer.getLength())-start);
  30.             count++;
  31.         }
  32.     }
  33.     Registers.setRegister('$',buff.toString());
  34.     HistoryModel.getModel("clipboard").addItem(buff.toString());
  35.     view.getStatus().setMessageAndClear(count + " " + LinesCutMessage);
  36. }
  37.  
  38. if(buffer.isReadOnly())
  39.     Toolkit.getDefaultToolkit().beep();
  40. else
  41.     cutLinesContaining();
  42.